require(['./config'], function() {
	require(['jquery', 'template', 'loadHF'], function($, template) {
		class List{
			constructor(){
				this.cart = JSON.parse(localStorage.getItem("cart")) || []				
				this.initProductList()
				this.addListener()
			}
			
			initProductList(){
				const url="http://www.xiongmaoyouxuan.com/api/tab/10?start=3"
				$.getJSON(url,function(resp){
					const list=resp.data.items.list
					const data={products:list}
					const html=template('allcake-template',data)
					$(".goods").html(html)
				})
			}
			
			
			addListener() {
				// 点击"加入购物车"按钮，触发表单提交的事件
				$(".goods").on("submit", ".goods-form", this.addToCartHandler.bind(this))
			}

			// 加入购物车处理
			addToCartHandler(e) {
				// 阻止表单的默认提交
				e.preventDefault()
				// 获取表单的祖先元素 ".prod-detail"
				const parents = $(e.target).parents(".goods-show")
				// 获取当前选购商品的信息
				const currProd = {
					id: parents.find(".prod-detail").text(),
					title: parents.find(".prod-title").text(),
					image: parents.find(".prod-img").attr("src"),
					price: parents.find(".prod-price").text(),
					amount: 1
				}

				// 确认 localStorage 中保存的购物车数组
				// 如果不确认，可能多个页面同时打开添加购物车时会出现问题
				this.cart = JSON.parse(localStorage.getItem("cart")) || []

				// 判断在购物车数组中是否存在当前选购的商品
				const has = this.cart.some(prod => prod.id == currProd.id)
				// 如果存在，则修改数组，不存在，则添加到数组中
				if (has) {
					this.cart = this.cart.map(prod => {
						if (prod.id == currProd.id)
							prod.amount += 1
						return prod
					})
				} else {
					// 将当前选购商品保存到购物车数组中
					this.cart.push(currProd)
				}
				// 将购物车数组保存到 localStorage 中
				localStorage.setItem("cart", JSON.stringify(this.cart))
				
				this.cartNumber()
			}
			
			cartNumber(){
			
			let cartnum=Number(this.cart.length);
			$(".cartNum").text(cartnum)
			
			}
			
			
			
			
		}	
		
		new List()
	})
})